package com.amikomgamedev.labirinhantu.state;

import org.andengine.entity.scene.Scene;
import org.andengine.entity.scene.background.Background;
import org.andengine.util.color.Color;

import com.amikomgamedev.labirinhantu.Utils;

public class State_Logo extends State_Menu_Select_Stage
{
	private boolean	isLoading	= false;

	@Override
	protected void onCreateResources()
	{
		super.onCreateResources();

		grafik.loadLogo();
	}

	@Override
	protected Scene onCreateScene()
	{
		m_Scene.setBackground(new Background(Color.BLACK));
		grafik.attachLogo(0);

		switchState(STATE_LOGO);

		return super.onCreateScene();
	}

	@Override
	public void onUpdate(float pSecondsElapsed)
	{
		if (State_Menu_Current == STATE_LOGO)
		{
			if (grafik.spr_Logo[0].hasParent() && !isLoading)
			{
				isLoading = true;

				grafik.loadMenuMainBg();
				grafik.loadMenuMainBtn();
				grafik.loadLogoHantu();
				grafik.loadMenuLonceng();
				grafik.loadMenuCreditsBg();
//				grafik.loadMenuHelpBg();
				grafik.loadMenuHelp();
				grafik.loadMenuMCBernafas();
				grafik.loadIconSocial();

				grafik.loadMenuLevelBtnTulang();
				
				Utils.TRACE("cupcup");
			}
			
			if (grafik.tex_Menu_Level_Btn_Tulang.isLoadedToHardware())
			{
				
				Utils.TRACE("aagd");
				
				grafik.detachLogo(0);
				grafik.attachLogo(1);
				
				if (grafik.spr_Logo[1].hasParent())
				{

					teks.loadFontSmall();
					teks.loadFontMedium();
//					teks.loadFontBig();
					
        				sound.loadGameBgm();
        				sound.loadGameSfx();
        				sound.loadMenuBgm();
        				
        				grafik.loadMenuLingkaran();
        				grafik.loadMenuSelectStage();
        				grafik.loadMenuLevelBg();
        				grafik.loadMenuLevelBtn();
        				grafik.loadMenuLevelBtnKuburan();
        				
        				grafik.loadGamePlayMc();
        				grafik.loadGamePlayBtn();
        				grafik.loadGamePlayBtnGhost();
        				grafik.loadGamePlayCollection();
        				grafik.loadGamePlayFloat();
        				grafik.loadGamePlayMist();
        				grafik.loadGamePlayFire();
        				grafik.loadGamePlayGhost();
        				grafik.loadGamePlayWater();
        				grafik.loadTmxInformasi();
        
        				grafik.loadGamePlayTaskbarBg();
        				grafik.loadGamePlayTaskbarMc();
        				grafik.loadGamePlayTaskbarBtn();
        				grafik.loadGamePlayTaskbarRule();				
        
        				grafik.loadGamePauseBg();
        				grafik.loadGamePauseBtn();
        				grafik.loadGameOverMc();
        				grafik.loadGameOverTxt();
        				grafik.loadGameOverBtn();
        				grafik.loadGameOverDarah();
        				
        				grafik.loadGameWinTmx();
        				grafik.loadGameWinMc();
        				grafik.loadGameWinTxt();
        				grafik.loadGameWinBtn();
        				grafik.loadGameWinTulang();
				}
				
			}

			if (grafik.tex_Game_Over_Btn[1] != null)
			if (grafik.tex_Game_Over_Btn[1].isLoadedToHardware())
			{
				grafik.detachLogo(1);
//				m_Scene.setBackground(new Background(Color.BLACK));

				grafik.attachMenuMainBg();
				grafik.attachMenuMainBtn();
				grafik.attachMenuMCbernafas();
				grafik.attachIconSocial();
				
				grafik.attachMenuSelectStage();
				grafik.attachMenuStageLingkaran();
				teks.attachMenuStage();

				// attach bg level stage 1
//				grafik.attachMenuLevelBg(STAGE_ONE);
//				grafik.attachMenuLevelBtn();
//				grafik.attachMenuLevelGembok();
//				grafik.attachMenuLevelTulang();

//				grafik.attachMenuHelpBg();
//				teks.attachTeksHelp(grafik.spr_Menu_Help_Bg);
				grafik.attachMenuHelp();
				grafik.attachMenuHelpLingkaran();

				grafik.attachMenuCreditsBg();
				teks.attachTeksCredit(m_Hud);
				teks.setVisible(false);

				switchState(STATE_MENU_MAIN);
				return;
			}
		}

		super.onUpdate(pSecondsElapsed);
	}

	@Override
	protected void switchState(byte state)
	{
		super.switchState(state);

		State_Menu_Current = state;

		switch (State_Menu_Current)
		{
			case STATE_LOGO:

				break;

			case STATE_MENU_MAIN:
				Utils.TRACE("masuk menu main");
				create_Menu_Main();

				break;
				
			case STATE_MENU_SELECT_STAGE:
				create_Menu_Select_Stage();
				
				break;

			case STATE_MENU_LEVEL:

				create_Menu_Level();

				break;

			case STATE_MENU_CREDITS:

				create_Menu_Credits();
				teks.setVisible(true);

				break;

			case STATE_MENU_HELP:

				create_Menu_Help();

				break;

			case STATE_GAME_PLAY:

				create_Game_Play();

				break;

			case STATE_GAME_PAUSE:

				create_Game_Pause();

				break;

			case STATE_GAME_WIN:

				create_Game_Win();

				break;

			case STATE_GAME_OVER:

				create_Game_Over();

				break;

		}
	}
}
